// 快排的思想是取数组中的一个值然后将大的放在它右边，小的放它左边
// 然后通过递归，将其左边和右边的重复上述操作。
// 下面的算法每次都只是取其第一个值作为参考
function quicksort(array, left = 0, right = array.length - 1) {
  if (left < right) {
    let i = left;
    let j = right;
    let pivot = array[i];
    while (i < j) {
      while (i < j && array[j] >= pivot) j--; //从右开始找小于pivot的值
      if (i < j) array[i++] = array[j]; //只要找到小于pivot的值，就将array[j]的值和array[i]即pivot交换
      while (i < j && array[i] < pivot) i++; //从左边开始找大于pivot的值
      if (i < j) array[j--] = array[i]; //
    }
    array[i] = pivot;
    quicksort(array, left, i - 1);
    quicksort(array, i + 1, right);
  }
}
